package com.bdqn.easybuy1.dao;

import com.bdqn.easybuy1.entities.ProductCategory;
import com.bdqn.easybuy1.param.ProductCategoryParam;

import java.sql.Connection;
import java.util.List;

public interface ProductCategoryDao {
    /**
     * 根据id删除商品
     *
     * @param conn      数据库连接对象
     * @param parseLong 产品分类id
     * @return 返回受影响的行数
     * @throws Exception
     */
    int deleteById(Connection conn, Integer parseLong) throws Exception;//删除商品分类

    /**
     * 根据条件查询商品分类列表
     *
     * @param conn  数据库连接对象
     * @param param 查询参数
     * @return 返回查询的商品列表数据
     * @throws Exception
     */
    List<ProductCategory> queryProductCategoryList(Connection conn, ProductCategoryParam param) throws Exception;

    /**
     * 根据id查询商品分类
     *
     * @param conn 数据库连接对象
     * @param id   产品分类的id
     * @return 产品分类的信息对象
     * @throws Exception
     */
    ProductCategory queryProductCategoryById(Connection conn, Integer id) throws Exception;

    /**
     * 添加商品分类
     *
     * @param conn            数据库连接对象
     * @param productCategory 封装产品类型信息的对象
     * @return 返回受影响的行数
     * @throws Exception
     */
    int insert(Connection conn, ProductCategory productCategory) throws Exception;

    /**
     * 根据参数查询商品分类的数目
     *
     * @param conn  数据库连接对象
     * @param param 查询参数
     * @return 返回查询数据的条数
     * @throws Exception
     */
    Integer queryProductCategoryCount(Connection conn, ProductCategoryParam param) throws Exception;

    /**
     * 修改商品分类
     *
     * @param conn 数据库连接对象
     * @param productCategory 封装了修改产品分类信息的对象
     * @return 返回受影响的行数
     * @throws Exception
     */
    int update(Connection conn, ProductCategory productCategory) throws Exception;
}
